package logique.solution;

import logique.programme.Vecteur;

public class VariableEntiere extends Variable {
	
	private int borneMin;
	private int borneMax;
	
	public VariableEntiere (Vecteur v, int index, int borneMin, int borneMax) {
		super(v, index);
		this.borneMin = borneMin;
		this.borneMax = borneMax;
	}
	
	public  int getBorneMinEnt() {
		return borneMin;
	}
	public  int getBorneMaxEnt() {
		return borneMax;
	}
	public  double getBorneMinReel() {
		return borneMin;
	}
	public  double getBorneMaxReel() {
		return borneMax;
	}
	public void setBorneMin(int n) {
		this.borneMin = n;
	}
	public void setBorneMax(int n) {
		this.borneMax = n;
	}
	public void setBorneMin(double x) {
		this.borneMin = (int) x;
	}
	public void setBorneMax(double x) {
		this.borneMax = (int) x;
	}
	
	public Affectation<Integer> creerAffectation(Double valeur) {
		return new Affectation<Integer>(valeur.intValue(), this);
	}
	
	public String toString () {
		return "(entier " + toStringCourt() + ", min=" + borneMin + ", max=" + borneMax + ")";
	}
	public void afficher () {
		System.out.print("(entier " + toStringCourt() + ", min=" + borneMin + ", max=" + borneMax + ")");
	}

	@Override
	public Variable getCopy(Vecteur v) {
		return new VariableEntiere(v, getIndex(), borneMin, borneMax);
	}
}